package com.northpool.operator.common.algorithm;

public abstract class AbstractAlgorithm {
    public static void successExit() {
        System.exit(0);
    }

    public static void failedExit() {
        System.exit(10);
    }
    public static void progress(int p) {
        logResult("progress", String.valueOf(p));
    }

    public static void progress(String p) {
        logResult("progress", p);
    }

    public static void logResult(String tag, String msg) {
        if (tag != null && !tag.isEmpty()) {
            logInfo(String.format("<%1$s>%2$s</%1$s>", tag, msg));
        } else {
            logResult(msg);
        }
    }

    public static void logResult(String msg) {
        logResult("result", msg);
    }

    public static void logInfo(String msg) {
        System.out.println(msg);
    }

    public static void logError(String msg) {
        logInfo("<result><status>1</status><msg>" + msg + "</msg></result>");
    }

    public static void logError(int status, String msg) {
        logInfo("<result><status>" + status + "</status><msg>" + msg + "</msg></result>");
    }
}
